//
// Created by glt on 2025/4/9.
//

#include <iostream>
#include <vector>
#include <algorithm>		// [注意] ：remove位于algorithm函数库中
#include <unordered_map>
int main()
{
    std::vector<int> vecInt{0, 1 , 2 ,3,3,4};

    std::cout << "size:"<<vecInt.size() << std::endl;     // 输出的结果为5，容器中存了5个元素

    auto it = std::remove(vecInt.begin(), vecInt.end(),5);
    vecInt.erase(it, vecInt.end());

    std::cout << "size:"<<vecInt.size() << std::endl;     // 输出的结果为5，容器中存了5个元素

    for(auto i : vecInt)
    {
        std::cout << i << std::endl;
    }
    vecInt[5];
    vecInt.at(5);


    std::unordered_map<std::string, int> myMap = {
            {"apple", 1},
            {"banana", 2},
            {"orange", 3}
    };
    myMap.emplace("li",5);

    // 使用基于范围的for循环遍历map
    for ( auto& pair : myMap) {
        std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
        pair.second=9;
    }

    for ( auto& pair : myMap) {
        std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
    }


}
// 使用remove之前，容器vector的值为： 0,1,2,3,4
// 使用remove函数删除值为3的元素后，容器vector的值为：0,1,2,4,
// 可以看出remove,容器的size变成了size-1，删除了值为3的元素。容器的capacity不变
